part of '../basic.dart';

extension BasicFileExtension on File {
  /// 快速获取文件的名字
  String get name => p.basenameWithoutExtension(path);
  String get fullname => p.basename(path);

  /// 比如md、jpg等格式（不包含点）
  String get extension {
    // 默认是包含带点的，此时将点去掉
    String ext = p.extension(path);
    if (ext.startsWith(".")) {
      return ext.substring(1);
    }
    // 如果不带点（通常来说是没有后缀），那么直接返回
    return ext.toLowerCase();
  }

  // 以点开头的文件名，通常是隐藏文件
  bool get isVisible => !name.startsWith(".");

  /// 快速判断文件是否是图像
  bool get isImage =>
      extension == "jpg" || extension == "png" || extension == "jpeg";

  /// 将文件转化成二进制的形式，但是不知道有没有用了
  Uint8List get binary {
    // 如果不打开，二进制会包含文件名和后缀，可能会导致错误
    final inner = openSync();
    final length = inner.lengthSync();
    return inner.readSync(length);
  }
}
